///////////////////////////////////////////////////////////////////////////////
/// @file string_manipulation.h
/// @author Benjamin J. Orr
/// @brief -- Custom string manipulation library, because I'm tired of searching
///           for functions.
///////////////////////////////////////////////////////////////////////////////

#ifndef STIRNGMANIPULATION_H
#define STRINGMANIPULATION_H

/////////////////////////////
/// LIBS
/////////////////////////////
#include <string>
using std::string;

///////////////////////////////////////////////////////////////////////////////
/// @fn string str_to_lower(string str)
/// @brief -- Converts str to lower case
/// @param string str -- the victim string
///////////////////////////////////////////////////////////////////////////////
string str_to_lower(string str);

///////////////////////////////////////////////////////////////////////////////
/// @fn string str_to_upper(string str)
/// @brief -- Converts str to upper case
/// @param string str -- the victim string
///////////////////////////////////////////////////////////////////////////////
string str_to_upper(string str);

///////////////////////////////////////////////////////////////////////////////
/// @fn string char_to_str(char chr)
/// @brief -- Converts chr to a string of length 1
/// @param char chr -- the victim char
///////////////////////////////////////////////////////////////////////////////
string char_to_string(char chr);

///////////////////////////////////////////////////////////////////////////////
/// @fn int str_to_int(string str)
/// @brief -- converts str to an integer
/// @param string str -- the victim string
///////////////////////////////////////////////////////////////////////////////
int str_to_int(string str);

///////////////////////////////////////////////////////////////////////////////
/// @fn double str_to_double(string str)
/// @brief -- converts a string to a double precision floating point number
/// @param string str -- the victim string
///////////////////////////////////////////////////////////////////////////////
double str_to_double(string str);

///////////////////////////////////////////////////////////////////////////////
/// @fn string charstar_to_str(char* chr)
/// @brief -- Converts chr to a string, great for argv[], I like inline casting
/// @param char* chr -- the victim char pointer
///////////////////////////////////////////////////////////////////////////////
string charstar_to_str(char* chr);

///////////////////////////////////////////////////////////////////////////////
/// @fn string int_to_str(int num)
/// @brief -- Converts num to a string, very crude
/// @param int num -- the victim integer
///////////////////////////////////////////////////////////////////////////////
string int_to_str(int num);

#endif
